﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CG67.EspaceRencontre.Domaine;
using CG67.EspaceRencontre.AccesDonnees;
using System.Data;

namespace CG67.EspaceRencontre.Services
{
    /// <summary>
    /// comporte les méthodes associées à l'objet "TravailleurSocial" défini dans la couche "Domaine"
    /// </summary>
    public class TravailleurSocialService
    {
        #region GetAllTravailleursSociaux
        /// <summary>
        /// récupère tous les travailleurs sociaux de la table TravailleurSocial
        /// </summary>
        /// <returns><c>List<TravailleurSocial></c></returns>
        public static List<TravailleurSocial> GetAllTravailleursSociaux()
        {
            DataSet ds = TravailleurSocialDB.GetAllTravailleurs();
            DataTable dt = ds.Tables[0];
            List<TravailleurSocial> listeTravailleursSociaux = new List<TravailleurSocial>();

            foreach (DataRow dr in dt.Rows)
            {
                listeTravailleursSociaux.Add(new TravailleurSocial(Int32.Parse(dr["ID"].ToString()), dr["NOM"].ToString(), dr["PRENOM"].ToString(), dr["MAIL"].ToString(), dr["TELEPHONE"].ToString(), true));
            }

            return listeTravailleursSociaux;
        } 
        #endregion

        #region GetTravailleurSocialById
        /// <summary>
        /// récupère le travailleur social correspondant à l'identifiant entré
        /// </summary>
        /// <param name="id"><c>int</c> : identifiant du travailleur social</param>
        /// <returns><c>TravailleurSocial</c></returns>
        public static TravailleurSocial GetTravailleurSocialById(int id)
        {
            DataSet ds = TravailleurSocialDB.GetTravailleurSocialById(id);
            DataTable dt = ds.Tables[0];
            DataRow dr = dt.Rows[0];

            return new TravailleurSocial(Int32.Parse(dr["ID"].ToString()), dr["NOM"].ToString(), dr["PRENOM"].ToString(), dr["MAIL"].ToString(), dr["TELEPHONE"].ToString(), true);
        } 
        #endregion

        #region DeleteTravailleurSocial
        /// <summary>
        /// permet de supprimer un travailleur social
        /// </summary>
        /// <param name="id"><c>int</c> : identifiant du travailleur social</param>
        public static void DeleteTravailleurSocial(int id)
        {
            TravailleurSocialDB.DeleteTravailleurSocial(id);
        } 
        #endregion

        #region UpdateTravailleurSocial
        /// <summary>
        /// permet de mettre à jour les données d'un travailleur social
        /// </summary>
        /// <param name="id"><c>int</c> : identifiant du travailleur social</param>
        /// <param name="nom"><c>string</c> : nom du travailleur social</param>
        /// <param name="prenom"><c>string</c> : prenom du travailleur social</param>
        /// <param name="adresseMail"><c>string</c> : adresse mail du travailleur social</param>
        /// <param name="telephone"><c>string</c> : numéro de téléphone du travailleur social</param>
        public static void UpdateTravailleurSocial(int id, string nom, string prenom, string adresseMail, string telephone)
        {
            TravailleurSocialDB.UpdateTravailleurSocial(id, nom, prenom, adresseMail, telephone);
        } 
        #endregion

        #region CreateTravailleurSocial
        /// <summary>
        /// permet de créer un travailleur social
        /// </summary>
        /// <param name="nom"><c>string</c> : nom du travailleur social</param>
        /// <param name="prenom"><c>string</c> : prenom du travailleur social</param>
        /// <param name="adresseMail"><c>string</c> : adresse mail du travailleur social</param>
        /// <param name="telephone"><c>string</c> : numéro de téléphone du travailleur social</param>
        public static void CreateTravailleurSocial(string nom, string prenom, string adresseMail, string telephone)
        {
            TravailleurSocialDB.CreateTravailleurSocial(nom, prenom, adresseMail, telephone);
        } 
        #endregion
    }
}
